home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / smaltalk / stv.lha / STV / st_v / util / STVUTIL7.ZIP / WIN31.TXT < prev    next >
Text File  |  1993-02-07  |  5KB  |  135 lines

  1. Changes and fixes to Smalltalk/V Windows 1.1 to run under Windows 3.1
  2. ===========================================================================
  3.  
  4. 1.  When switching between or closing a window with cetain control panes a
  5. "DC not released" walkback will come up.  This is most noticable when
  6. switching from or closing the Control Demo window.
  7.  
  8. The following is the fix for this problem.
  9.  
  10. !ControlPane methods !
  11.  
  12. drawControl: aDrawStruct
  13.         "Private - Process a request to draw a user
  14.         drawn control item."
  15.     |oldDC|
  16.     aDrawStruct itemId = 65535
  17.         ifTrue: [ ^nil ].
  18.     oldDC := graphicsTool privateHandle.
  19.     graphicsTool         "set up pen"
  20.         setHandle: ( aDrawStruct hDC ).
  21.     aDrawStruct itemAction = OdaDrawentire
  22.         ifTrue: [
  23.             self drawItem: aDrawStruct.
  24.             aDrawStruct itemState = OdsSelected
  25.                 ifTrue: [ self highlight: aDrawStruct ]]
  26.         ifFalse: [
  27.             aDrawStruct itemAction = OdaFocus
  28.                 ifTrue: [ self drawFocus: aDrawStruct ]
  29.                 ifFalse: [aDrawStruct itemAction = OdaSelect                
  30.                      ifTrue: [ self highlight: aDrawStruct ]]].
  31.                      self graphicsTool handle: oldDC.
  32.     ^1! !
  33.  
  34. ---------------------------------------------------------------------------
  35.  
  36. 2. In the Debug version of Windows, breaks (debug messages) will occur
  37. while closing windows.   This problem will not be visible for people using
  38. regular version of Windows.
  39.  
  40. The following is the fix for this problem.
  41.  
  42. !Window methods !
  43.  
  44. close
  45.         "Private - Close the window."
  46.     |aHandle|
  47.  
  48.     self stopReceivingMessages.
  49.     (graphicsTool isKindOf: GraphicsTool) ifTrue: [
  50.         graphicsTool destroy.
  51.         graphicsTool := nil].
  52.  
  53.     aHandle := handle propertyAt: 'oldProc'.
  54.  
  55.     "save old proc address handle to be released
  56.            after closing whole window"  
  57.  
  58.     children size > 0 ifTrue: [
  59.         children do: [:subpane | subpane close]].
  60.     self destroy.
  61.     aHandle = 0 ifFalse:[
  62.         KernelLibrary globalUnlock: aHandle.
  63.         KernelLibrary globalFree: aHandle]! !
  64.  
  65. !ApplicationWindow methods !
  66.  
  67. closeView
  68.         "Close the receiver and all its children."
  69.     | inner |
  70.     handle = NullHandle ifTrue: [^self]. "already closed"
  71.     inner := OrderedCollection new.
  72.     Notifier windows do: [:w|
  73.         ((w == self) not and: [
  74.         (w isKindOf: ApplicationWindow) and: [
  75.             UserLibrary isChild:  handle child: w handle]])                
  76. ifTrue: [inner add: w]].
  77.     inner do: [:w| w textModified ifTrue: [^nil] ifFalse:
  78.     [w clearTextModified]].
  79.     inner do: [:w| w close].
  80.     self textModified ifTrue: [^nil].
  81.     self hideWindow.
  82.     menuWindow close.
  83.     super close.
  84.     super initialize.! !
  85.  
  86.  
  87. ---------------------------------------------------------------------------
  88.  
  89. 3.  TrueType fonts can not be selected in VWin 1.1.  The next release of
  90. VWIN will resolve this problem.
  91.  
  92. ---------------------------------------------------------------------------
  93.  
  94. 4.  In the debug version of Windows, breaks (debug messages) will occur
  95. while starting up Smalltalk.    This problem will not be visible for
  96. people using the regular version of Windows.
  97.  
  98. There is no Smalltalk fix for this problem.  The fix is in the Virtual
  99. machine of the next VWIN release.
  100.  
  101. ---------------------------------------------------------------------------
  102.  
  103. 5. The bytes within WinLong were being accessed improperly.
  104.  
  105. The following is a fix for this problem.
  106.  
  107. !WinLong methods !
  108.  
  109. highHalf
  110.         "Private - Answer the high half word."
  111.     ^self uShortAtOffset: 2!
  112.  
  113. highHalf: anInteger
  114.         "Private - Set the high half word."
  115.     self uShortAtOffset: 2 put: anInteger!
  116.  
  117. lowHalf
  118.         "Private - Answer the low half word."
  119.     ^self uShortAtOffset: 0!
  120.  
  121. lowHalf: anInteger
  122.         "Private - Set the low half word."
  123.     self uShortAtOffset: 0 put: anInteger! !
  124.  
  125. ---------------------------------------------------------------------------
  126.  
  127. 6. It is possible to receive "Out of Memory" errors when running VWIN 1.1
  128. under Windows 3.1 on AT-class machines ( 80286 CPU based machines).  For
  129. example, on a typical AT machine with 4 megabytes of memory, running the
  130. Puzzle15 demo program will result in "Out of Memory" messages from Windows
  131. in under five minutes.   User should upgrade to VWIN 2.0, or run on PCs
  132. equipped with 80386 CPUs (or better).
  133.  
  134. ---------------------------------------------------------------------------
  135.